package com.project.poetry.service.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.poetry.service.entity.dto.file.*;
import com.project.poetry.service.entity.po.file.FilePO;
import com.project.poetry.service.entity.po.user.UserPO;

import javax.servlet.http.HttpServletResponse;

public interface FileService {

    /**
     * 上传文件
     * @param fileUpload 入参dto
     * @param user 当前人
     */
    void upload(FileUploadDTO fileUpload, UserPO user);

    /**
     * 查询文件
     * @param fileDto 用户输入参数
     * @param user 当前人
     */
    IPage<FilePO> selectList(FileListDTO fileDto, UserPO user);

    /**
     * 下载文件
     * @param id 文件id
     * @param response 相应对象
     */
    void download(Long id, HttpServletResponse response);

    /**
     * 删除文件
     * @param id 文件id
     * @param user 当前人
     */
    void delete(Long id, UserPO user);

    /**
     * 上传密件
     * @param secretFileUpload  入参dto
     * @param user 当前人
     */
    void secretUpload(SecretFileUploadDTO secretFileUpload, UserPO user);

    /**
     * 查询密件
     * @param secretFileUpload 密件查询条件
     * @param user 当前人
     * @return 结果
     */
    IPage<SecretFileListOutDTO> secretFileList(SecretFileListDTO secretFileUpload, UserPO user);

    /**
     * 删除密件
     * @param id 密件id
     * @param user 当前人
     */
    void deleteSecret(Long id, UserPO user);

    /**
     * 下载密件
     * @param id 密件id
     * @param response 相应对象
     */
    void downloadSecret(Long id, HttpServletResponse response);
}
